/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clks;

/**
 *
 * @author 10135228
 */
public class Clks {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
int lim = 0x12345678; 
int pp = 256;

for (int i = 1; (lim-pp) / ((64 + i) + pp) != 0; i++) {
    if (Math.atan(i - ((i / lim) * lim)) > 1.55) // > ~50
        lim = (lim / 50) * 40;

    //int foo = lim; // bar

    //for (int j = 0; j < 0x123456; j++)
      //  foo ^= (j >> 3) | (j << 29); // tidy

    pp &= lim; // in 42-0

    if (lim - ((lim / i) * i) == 0) {
        System.out.printf("%x", i / 2);
        //System.out.println();
        pp = (pp * 3) / 2; 
    }
}        
        System.out.println();
        
        
        
        
        
//        try {
//            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
//                if ("Nimbus".equals(info.getName())) {
//                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
//                    break;
//                }
//            }
//        } catch (ClassNotFoundException ex) {
//            java.util.logging.Logger.getLogger(Clks.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (InstantiationException ex) {
//            java.util.logging.Logger.getLogger(Clks.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (IllegalAccessException ex) {
//            java.util.logging.Logger.getLogger(Clks.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
//            java.util.logging.Logger.getLogger(Clks.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
//        }
        
        
//        //new shattered2();
//        //new Clks();
          //solveRSA();
          //fullDEC();

            
        

            
            
            
            
            
    }
    
//    private static void fullDEC(){
//        char[] codeSet = new char[]{' ','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','.','$','%'};
//        String[] source = new String[]{"027172145241",
//                                        "021307733300",
//                                        "000453047302",
//                                        "017031122033",
//                                        "021154317267",
//                                        "000300503302",
//                                        "013351234147",
//                                        "000370032000",
//                                        "013351447036",
//                                        "016011600446",
//                                        "000372766314",
//                                        "027737761105",
//                                        "020244476513",
//                                        "012133265503",
//                                        "022505147550",
//                                        "026550750160",
//                                        "000332551570",
//                                        "011511701410",
//                                        "016011740025",
//                                        "000404671215",
//                                        "016776463613",
//                                        "025474757577",
//                                        "012373124216",
//                                        "000214437111",
//                                        "022470244726",
//                                        "000214356410",
//                                        "016067702420",
//                                        "017047433115",
//                                        "000162262713",
//                                        "020013100000"};
//        for (int i = 0; i < source.length; i++) {
//          
//        
//            StringBuilder tmp = new StringBuilder("");
//            Long numberTmp = Long.parseLong(source[i],8);
//            for (int j = 0; j < 6; j++) {
//                int index = (int) (numberTmp%40);
//                tmp.insert(0,codeSet[index]);
//                numberTmp /= 40;
//
//            }
//            System.out.print(tmp.toString());
//        }
//        System.out.println();
//    
//    }

//    private static void solveRSA() {
//        BigInteger p = new BigInteger("4146162919458530168953357282201621124057");
//        BigInteger q = new BigInteger("4384165182867240584805930970951575013697");
//        BigInteger e  = new BigInteger("65537");
//        BigInteger phi = new BigInteger("18177463113985279014593768153541854004927645837192198286583131372476991115070976");
//        BigInteger N = new BigInteger("18177463113985279014593768153541854004936176165294524057336890660730144311208729");
//        BigInteger d;
//        BigInteger k = new BigInteger("1810");
//        BigInteger message = new BigInteger("13927286537254031626323670117308341421825250505042934290710960886577880641606495");
//        
//        d = e.modInverse(phi);
//
//        String plain = "0"+message.modPow(d, N).toString(2);
//        for (int j = 0; j < plain.length()-7; j+=8) {
//            System.out.print(Character.toChars(Integer.valueOf(plain.substring(j, j+8),2)));
//        }
//        System.out.println();
//    }
     
}
